package com.blog.service.meta;

import com.blog.dto.MetaDto;
import com.blog.dto.cond.MetaCondition;
import com.blog.model.Meta;

import java.util.List;

/**
 * 项目服务层的业务接口
 *
 * @author wmb
 *
 * @since 2021-2-8
 */
public interface MetaService {

    /**
     * 根据条件获取对应的项目
     *
     * @param metaCondition
     *
     * @return
     */
    List<Meta> getMetas(MetaCondition metaCondition);

    /**
     * 批量添加
     *
     * @param cid
     * @param names
     * @param type
     */
    void saveMetas(Integer cid, String names, String type);

    /**
     * 添加或者更新
     *
     * @param cid
     * @param name
     * @param type
     */
    void saveOrUpdate(Integer cid, String name, String type);

    /**
     * 添加项目
     *
     * @param meta
     * @return
     */
    void saveMeta(Meta meta);

    /**
     * 根据类型查询项目列表，带项目下面的文章数
     *
     * @param type
     * @param orderBy
     * @param pageSize
     *
     * @return
     */
    List<MetaDto> getMetaList(String type, String orderBy, Integer pageSize);

    /**
     * 添加
     *
     * @param type
     * @param name
     * @param id
     */
    void saveMeta(String type, String name, Integer id);

    /**
     * 删除项目
     *
     * @param id
     *
     * @return
     */
    void deleteMetaById(Integer id);
}
